package com.cy.pj.common.pool;

import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
/*创建一个对象池类型，然后对此类型的对象交给spring管理
*@Component注解描述的对象可以交给spring去管理，表示这个对象是一个一般组件
* 系统底层会通过反射技术创建bean实例，并起名字
* */

@Component//此注解描述的对象可以交给spring去管理，例如创建bean实例，给bean起一个默认名字
@Scope("prototype")//设置bean对象的作用域
@Lazy//描述对象类型时表示延迟对象的创建，何时需要何时创建
public class ObjectPool {
          public ObjectPool(){
              System.out.println("ObjectPool()");
          }
          @PostConstruct//此注解描述的方法为对象生命周期初始化方法，此方法会在构造方法之后执行
          public void init(){
              System.out.println("init()");
          }
          @PreDestroy
          public void destroy(){
              System.out.println("destroy()");
          }
}
